<?php
/**
 * JoiGallery - image gallery component for Joostina CMS
 *
 * Backend uninstall handler
 *
 * @version 1.0 alpha 12
 * @package JoiGallery
 * @subpackage	Installer
 * @filename install.joigallery.php
 * @author JoostinaTeam
 * @copyright (C) 2008-2009 Joostina Team
 * @license see license.txt
 *
 **/

defined('_VALID_MOS') or die();

function com_uninstall() {

  $mainframe = &mosMainFrame::getInstance();
  $database  = &database::getInstance();

  //Удаляем директорию изображений
  delete_directory (JPATH_BASE.'/images/joigallery');

  //Удаляем категории (jos_categories)
  $database->setQuery("DELETE FROM #__categories WHERE section = 'com_joigallery'");
  $database->query();

  //Удаляем дополнительные поля (jos_joi_extrafields)
  $database->setQuery("DELETE FROM #__joi_extrafields WHERE component = 'com_joigallery'");
  $database->query();

  //Удаляем значения дополнительных полей (jos_joi_extrafields_values)
  $database->setQuery("DELETE FROM #__joi_extrafields_values WHERE component = 'com_joigallery'");
  $database->query();

  //Удаляем значения конфигурации (jos_config)
  $database->setQuery("DELETE FROM #__config WHERE `group` = 'joigallery'");
  $database->query();

  //Удаляем пункты меню (jos_menu)
  $database->setQuery("DELETE FROM #__menu WHERE type = 'components' AND link = 'index.php?option=com_joigallery'");
  $database->query();

  //Удаляем поисковый плагин
  if(file_exists(JPATH_BASE.'/mambots/search/joigallery.searchbot.php')) {
      unlink(JPATH_BASE.'/mambots/search/joigallery.searchbot.php');
      unlink(JPATH_BASE.'/mambots/search/joigallery.searchbot.xml');
      $database->setQuery("DELETE FROM #__mambots WHERE folder = 'search' AND element = 'joigallery.searchbot'");
      $database->query();
  }

  //Удаляем плагин карты сайта
  if(file_exists(JPATH_BASE.'/administrator/components/com_xmap/extensions/com_joigallery.php')) {
      unlink(JPATH_BASE.'/administrator/components/com_xmap/extensions/com_joigallery.php');
      unlink(JPATH_BASE.'/administrator/components/com_xmap/extensions/com_joigallery.xml');
      $database->setQuery("DELETE FROM #__xmap_ext WHERE extension = 'com_joigallery'");
      $database->query();
  }

  //Удаляем мамбота вставки эскизов галереи в содержимое
  if(file_exists(JPATH_BASE.'/mambots/content/joigallery.php')) {
      unlink(JPATH_BASE.'/mambots/content/joigallery.php');
      unlink(JPATH_BASE.'/mambots/content/joigallery.xml');
      $database->setQuery("DELETE FROM #__mambots WHERE folder = 'content' AND element = 'joigallery'");
      $database->query();
  }

  //Удаляем кнопку редактора для мамбота вставки эскизов галереи в содержимое
  if(file_exists(JPATH_BASE.'/mambots/editors-xtd/joigallerybtn.php')) {
      unlink(JPATH_BASE.'/mambots/editors-xtd/joigallerybtn.php');
      unlink(JPATH_BASE.'/mambots/editors-xtd/joigallerybtn.xml');
      unlink(JPATH_BASE.'/mambots/editors-xtd/joigallerybtn.gif');
      $database->setQuery("DELETE FROM #__mambots WHERE folder = 'editors-xtd' AND element = 'joigallerybtn'");
      $database->query();
  }

  //Удаляем модуль
  if(file_exists(JPATH_BASE.'/modules/mod_joigallery.php')) {
      unlink(JPATH_BASE.'/modules/mod_joigallery.php');
      unlink(JPATH_BASE.'/modules/mod_joigallery.xml');
      delete_directory (JPATH_BASE.'/modules/mod_joigallery');
      $database->setQuery("DELETE FROM #__modules WHERE module = 'mod_joigallery'");
      $database->query();
  }


}//function com_uninstall


//Функция удаления вложенных директорий
function delete_directory ($dirname) {

  if (is_dir($dirname))
      $dir_handle = opendir($dirname);
  if (!$dir_handle)
      return false;
  while($file = readdir($dir_handle)) {
      if ($file != "." && $file != "..") {
          if (!is_dir($dirname."/".$file))
              unlink($dirname."/".$file);
          else
          delete_directory($dirname.'/'.$file);
      }
  }
  closedir($dir_handle);
  rmdir($dirname);
  return true;
}


function joi_check_dir($dir) {

  if (!is_dir($dir)) {
          umask(011);
          if (!mkdir($dir)) {
                  echo 'Ошибка установки: невозможно создать директорию '.$dir;
                  return false;
          }
          mosChmod($dir, 0777);
          return true;
  }
  return true;
}
